package com.foxchen.offline.task.util;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;

import java.io.File;
import java.io.IOException;
import java.util.Date;

/**
 * @author 6774000316@zte.intra
 */
@Slf4j
public class FileUtils {
    /**
     * 根据微服务名称或者ftp存放文件的文件夹
     * @param moduleName 当前微服务名称
     * @return 文件路径 configuration/2023/09/01
     */
    public static String getDateFileDir(String moduleName) {
        return moduleName + File.separator + DateFormatUtils.format(new Date(), "yyyy" + File.separator + "MM" + File.separator + "dd");
    }

    /**
     * 根据文件名与后缀获取带时间的文件全名  configuration/2023/09/01/taskA.xlsx
     * @param dir 文件路径
     * @param fileMainName 文件名称 去掉尾缀
     * @param fileSuffix 文件后缀
     * @return 文件名 该文件路径会存库
     */
    public static String getDateFileName(String dir,String fileMainName, String fileSuffix) {
        return dir + File.separator + fileMainName + fileSuffix;
    }

    public static File checkAndCreateFile(String fileUrl) throws IOException {
        File file = new File(fileUrl);
        File parentFile = file.getParentFile();
        if (!parentFile.exists()) {
            boolean mkdirs = parentFile.mkdirs();
            log.info("fileUrl:{} is created parent dir: {}",fileUrl,mkdirs);
        }

        if(!file.exists()){
            boolean newFile = file.createNewFile();
            log.info("fileUrll:{} is created new file: {}",fileUrl,newFile);
        }

        return file;
    }
}